using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
namespace MonitorAlarm
{
public class ZjunNewSMSNHandler:ISMSHandler
{
public string SITEURL = System.Configuration.ConfigurationManager.AppSettings["url"];
///
/// 发送短信
///
/// 用户ID
/// 时间戳
/// 加密签名
/// 手机
/// 短信内容
/// 发送时间
/// 扩展码
///
public string SendSMS(string userid, string timestamp, string sign, string mobile, string content, string sendTime, string extno)
{
string requestUrl = string.Format("{0}/v2sms.aspx", SITEURL);
StreamReader reader;
Uri requestUri = new Uri(requestUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
request.Timeout = 1000000;
StringBuilder data = new StringBuilder();
data.Append("action=send");
data.Append(string.Format("&userid={0}", userid));
data.Append(string.Format("×tamp={0}", timestamp));
data.Append(string.Format("&sign={0}", sign));
data.Append(string.Format("&content={0}", content));
data.Append(string.Format("&mobile={0}", mobile));
data.Append(string.Format("&extno={0}", extno));
data.Append(string.Format("&sendTime={0}", sendTime));
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());//utf编码格式显性转换
request.ContentLength = byteData.Length;
//开始请求
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}//如果不用using ,就要使用close()释放Stream.
//获取响应
WebResponse response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//string value = reader.ReadToEnd();
//return value;
//或者,上面是直接获得值。下面是使用缓存获取。
StringBuilder builder = new StringBuilder();
char[] buffer = new char[0x400];
int charCount = 0;
while ((charCount = reader.Read(buffer, 0, buffer.Length)) > 0)
{
builder.Append(buffer, 0, charCount);
}
reader.Close();
return builder.ToString();
}
///
/// 上行查询
///
/// 用户ID
/// 时间戳
/// 加密签名
///
public string Mo(string userid, string timestamp, string sgin)
{
string requestUrl = string.Format("{0}/v2callApi.aspx", SITEURL);
StreamReader reader;
Uri requestUri = new Uri(requestUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
request.Timeout = 100000000;
StringBuilder data = new StringBuilder();
data.Append("action=query");
data.Append(string.Format("&userid={0}",userid));
data.Append(string.Format("×tamp={0}",timestamp));
data.Append(string.Format("&sign={0}",sgin));
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = bytedata.Length;
Stream poststream = request.GetRequestStream();
poststream.Write(bytedata,0,bytedata.Length);
poststream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream(),Encoding.UTF8);
string value = reader.ReadToEnd();
return value;
}
///
/// 状态查询
///
/// 用户ID
/// 时间戳
/// 加密签名
/// 查询个数
///
public string Report(string userid, string timestamp, string sgin, string statusNum)
{
string requestUrl = string.Format("{0}/v2statusApi.aspx", SITEURL);
StreamReader reader;
Uri requestUri = new Uri(requestUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";//协议
request.KeepAlive = true;
request.Timeout = 1000000000;
StringBuilder data = new StringBuilder();
data.Append("action=query");
data.Append(string.Format("&userid={0}",userid));
data.Append(string.Format("×tamp={0}",timestamp));
data.Append(string.Format("&sign={0}",sgin));
data.Append(string.Format("&statusNum={0}",statusNum));
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = bytedata.Length;
Stream stream = request.GetRequestStream();
stream.Write(bytedata,0,bytedata.Length);
stream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream(),Encoding.UTF8);
string value = reader.ReadToEnd();
return value;
}
///
/// 余额查询
///
/// 用户ID
/// 时间戳
/// 加密签名
///
public string Balance(string userid, string timestamp, string sgin)
{
string requestUrl = string.Format("{0}/v2sms.aspx", SITEURL);
StreamReader reader=null;
Uri requestUri = new Uri(requestUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
request.Timeout = 10000000;
StringBuilder data = new StringBuilder();
data.Append("action=overage");
data.Append(String.Format("&userid={0}",userid));
data.Append(String.Format("×tamp={0}",timestamp));
data.Append(String.Format("&sign={0}",sgin));
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = byteData.Length;
Stream stream = request.GetRequestStream();
stream.Write(byteData,0,byteData.Length);
stream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
String value = reader.ReadToEnd();
return value;
}
///
/// 修改密码
///
/// 用户ID
/// 账号
/// 密码
/// 新密码
/// 重复新密码
///
public string Upassword(string userid, string account, string password, string newpwd, string renewpwd)
{
string requestUrl = string.Format("{0}/sms.aspx",SITEURL);
StreamReader reader;
Uri requestUri = new Uri(requestUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true ;
request.Timeout = 1000000;
StringBuilder data = new StringBuilder();
data.Append("action=changespwd");
data.Append(string.Format("&userid={0}",userid));
data.Append(string.Format("&account={0}",account));
data.Append(string.Format("&password={0}",password));
data.Append(string.Format("&newpwd={0}",newpwd));
data.Append(string.Format("&renewpwd={0}",renewpwd));
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = bytedata.Length;
Stream poststream = request.GetRequestStream();
poststream.Write(bytedata,0,bytedata.Length);
poststream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
string value = reader.ReadToEnd();
reader.Close();
return value;
}
///
/// 非法敏感词查询
///
/// 用户ID
/// 时间戳
/// 加密签名
/// 查询内容
///
public string CheckKey(string userid, string timestamp, string sgin, string content)
{
string requestUrl = string.Format("{0}/v2sms.aspx", SITEURL);
StreamReader reader;
Uri requestUri = new Uri(requestUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUri);
request.Method = "post";
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
request.Timeout = 1000000;
StringBuilder data = new StringBuilder();
data.Append("action=checkkeyword");
data.Append(string.Format("&userid={0}", userid));
data.Append(string.Format("×tamp={0}", timestamp));
data.Append(string.Format("&sign={0}", sgin));
data.Append(string.Format("&content={0}", content));
byte[] bytedata = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = bytedata.Length;
Stream poststream = request.GetRequestStream();
poststream.Write(bytedata, 0, bytedata.Length);
poststream.Close();
WebResponse response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
string value = reader.ReadToEnd();
reader.Close();
return value;
}
}
}